/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sisgraf.controler;
import java.util.ArrayList;
import sisgraf.dao.ItemOrcamentoDaoImp;
import sisgraf.model.ItemOrcamento;
import java.util.List;
import java.util.Set;
import javax.swing.table.TableModel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;

/**
 *
 * @author Jordan de Carvalho Guerra
 */
public class ItemOrcamentoControler extends Controler {
    private ItemOrcamentoDaoImp daoLock = new ItemOrcamentoDaoImp();
    public TableModel getListarItemOrcamento(String par) {
        List<ItemOrcamento> lista = null;
        if (par != null)
            lista = new ItemOrcamentoDaoImp().list(par);
        else
            lista = new ItemOrcamentoDaoImp().list("i.id = 0");
        return getModelo(lista);
    }
    
     
    public TableModel getSetListarItemOrcamento(Set<ItemOrcamento> setLista) {
//        List<ItemOrcamento> lista = null;
//        lista = (List) setLista;
        List<ItemOrcamento> lista = new ArrayList(setLista);
        return getModelo(lista);
    }
     /*
     */
    private TableModel getModelo(List<ItemOrcamento> lista){
        String[] cabecalho = new String[]  {"It.","Descrição", "Quantidade", "Valor",
            "Dt.Aprov.", "Dt.Canc.","Prazo Entrega"};
        TableModel modelo = new ItemOrcamentoTabela(lista, cabecalho);
        return modelo;
    }
    public void ajustarTabela(JTable tabela){
        DefaultTableCellRenderer e = new DefaultTableCellRenderer();
        DefaultTableCellRenderer c = new DefaultTableCellRenderer();
        DefaultTableCellRenderer d = new DefaultTableCellRenderer();
        e.setHorizontalAlignment(SwingConstants.LEFT);
        c.setHorizontalAlignment(SwingConstants.CENTER);
        d.setHorizontalAlignment(SwingConstants.RIGHT);
        int[] tamCol = new int[] {3,50,9,15,20,20,20};
        DefaultTableCellRenderer[] aliCol = new DefaultTableCellRenderer[]
            {d,e,d,d,e,e,e};
        super.ajustarTabela(tabela, tamCol, aliCol);
    }
    public ItemOrcamento prepararAlterarItemOrcamento(int id){
        return daoLock.getLockItemOrcamento(id);
    }
    public boolean excluirItemOrcamento(ItemOrcamento material) {
        ItemOrcamentoDaoImp dao = new ItemOrcamentoDaoImp();
        return dao.remove(material);
    }
    public boolean adicionarItemOrcamento(ItemOrcamento material){
        ItemOrcamentoDaoImp dao = new ItemOrcamentoDaoImp();
        return dao.save(material);
    }

    public boolean alterarItemOrcamento(ItemOrcamento material){
        if (!daoLock.settLockItemOrcamento(material)){
            return false;
        } else {
            return true;
        }
    }
    public boolean liberarItemOrcamento(){
        if (!daoLock.unLockItemOrcamento()){
            return false;
        } else {
            return true;
        }
    }

}
